#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 1e6 + 5;
int n, _, m, vis[maxn], a, stk[maxn], c, pre[maxn];
void solve() {
cin >> n >> c;
int jud = 0, ans = 0, tot = 0;
for (int i = 1 ; i <= n ; ++i) {
cin >> a;
if (a == 1) jud = 1;
if (!vis[a]) stk[++tot] = a;
vis[a]++;
}
for (int i = 1 ; i <= c ; ++i) pre[i] = pre[i - 1] + (vis[i] != 0);
for (int i = 1 ; i <= tot ; ++i) {
int v = stk[i];
if (vis[v] > 1 && !jud) ans = 1;
for (int j = 1 ; j*v <= c ; j++) {
int r = min(j*v + v - 1, c), l = j*v;
if (pre[r] - pre[l - 1] && !vis[j]) ans = 1;
}
}
for (int i = 1 ; i <= tot ; ++i) vis[stk[i]] = 0;
cout << (ans == 1 ? "No" : "Yes");
if (_) cout << endl;
}
signed main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> _;
while(_--) solve();
return 0;
}
952. Largest Component Size by Common Factor | 212. Word Search II |
174. Dungeon Game | 127. Word Ladder |
123. Best Time to Buy and Sell Stock III | 85. Maximal Rectangle |
84. Largest Rectangle in Histogram | 60. Permutation Sequence |
42. Trapping Rain Water | 32. Longest Valid Parentheses |
Cutting a material | Bubble Sort |
Number of triangles | AND path in a binary tree |
Factorial equations | Removal of vertices |
Happy segments | Cyclic shifts |
Zoos | Build a graph |
Almost correct bracket sequence | Count of integers |
Differences of the permutations | Doctor's Secret |
Back to School | I am Easy |
Teddy and Tweety | Partitioning binary strings |
Special sets | Smallest chosen word |